//
//  MySwiftTest.swift
//  C_OC_Swift
//
//  Created by Vine on 2017/4/16.
//  Copyright © 2017年 Vine. All rights reserved.
//

class MySwiftTest: NSObject {//这是一个类，和结构体差不多。（区别看语言指南）

    //创建一个开始函数
    func swiftStarFunction() -> Void {
        print("\nSwift开始函数")
        
        //这里函数调用，我们也不需要提前进行声明
        //这里的函数调用类似OC
        printHello()
        printWorld()
        
        
        
        let num = self.returnOne();
        print("无參有返回值-->\(num)")
        
        print("有參无返回值\(addOne(num: 1))")
        
        print(addTwoNum(num1: 3, num2: 5))
        
        //函数外使用参数标签
        //argument 论据、争论、理由
        //parameter 参数
        //默认情况下使用参数名称作为参数标签
        someFunction(firstParameterName: 1, secondParameterName: 2)
        
        //调用函数使用  arguement label 参数标签
        someFunction1(argumentLabel: 1)
        
        
    }
    
    //无參无返回值
    func printHello() -> Void {
        print("无參无返回值Hello")
    }
    func printWorld() {
        
        print("World")

    }
    //无參有返回值
    func returnOne() -> NSInteger {
        return 1;
    }
    //有參有返回值
    func addOne(num: NSInteger) -> NSInteger {
        return num + 1;
    }
    //多参有返回值
    func addTwoNum(num1: NSInteger, num2: NSInteger) -> NSInteger {
        return num1 + num2;
    }
    
    //多参无返回值
    func someFunction(firstParameterName: Int, secondParameterName: Int) -> Void {
        //函数体内，firstParameterName 和 secondParameterName代表参数中的第一个和第二个参数值
    }
    
    //指定函数标签
    func someFunction1(argumentLabel parameterName: Int) -> Void {
        print("函数内使用parameterName\(parameterName)");
    }
}//这个括号和OC中的end是一致的
